knitr::opts_chunk$set(echo = TRUE)
#Carga de paquetes
library(dplyr)
library(sf)
library(DT)
library(plotly)
library(leaflet)
library(raster)
# Registros de presencia de primates
primates <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/gbif/primates-cr-registros.csv",
options = c(
"X_POSSIBLE_NAMES=decimalLongitude",
"Y_POSSIBLE_NAMES=decimalLatitude"
),
quiet = TRUE
)
# Asignacion de CRS
st_crs(primates) = 4326
# Carga de la capa de cantones
cantones <-
st_read(
"https://raw.githubusercontent.com/gf0604-procesamientodatosgeograficos/2021i-datos/main/ign/delimitacion-territorial-administrativa/cr_cantones_simp_wgs84.geojson",
quiet = TRUE
)
# Cruce espacial con la tabla de cantones
primates <-
primates %>%
st_join(cantones["canton"])
Se utilisa el conjunto de datos sobre 4 especies de primates de Costa Rica.
Ateles geoffroyi, Cebus capucinus, Alouatta palliata, Saimiri oerstedii que se refieren respectivamente al mono araña, mono carablanca, mono congo y mono ardilla.
Tabla con los registro de familia, especie, provincia, cantón y fecha para cada grupo de primates.
# Tabla de registros de presencia
primates %>%
st_drop_geometry() %>%
dplyr::select(family, species, stateProvince, canton, locality, eventDate) %>%
datatable(
colnames = c(
"Familia",
"Especie",
"Provincia",
"Canton",
"Localidad",
"Fecha"
),
options = list(searchHighlight = TRUE, language = list(url = '//cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json')
)
)
Muestra la cantidad de registros en un gráfico pastel para cada una de las especies, ademas el porcentaje del total que representa cada una.
Crear una paleta de colores para el gráfico pastel.
# cargar colores
colors <- c('rgb(211,94,96)', 'rgb(128,133,133)', 'rgb(144,103,167)', 'rgb(171,104,87)')
Crear el gráfico pastel.
#grafico pastel
grafico_pastel <- plot_ly(
primates,
labels = ~ species,
type = "pie",
textposition = "inside",
textinfo = "label+percent",
insidetextorientation = "auto",
insidetextfont = list(color = "#FFFFFF"),
marker = list(colors = colors),
showlegend = FALSE
) %>%
layout(
title = "Cantidad de registros para cada especie de primate",
xaxis = list(
showgrid = FALSE,
zeroline = FALSE,
showticklabels = FALSE
),
yaxis = list(
showgrid = FALSE,
zeroline = FALSE,
showticklabels = FALSE
)
)
config (grafico_pastel, locale = "es")
Separar las especies por capas
# capa de Ateles geoffroyi
Ateles_geoffroyi <-
primates %>%
filter(species == "Ateles geoffroyi")
# capa de Cebus capucinus
Cebus_capucinus <-
primates %>%
filter(species == "Cebus capucinus")
# capa de Alouatta palliata
Alouatta_palliata <-
primates %>%
filter(species == "Alouatta palliata")
# capa de Saimiri oerstedii
Saimiri_oerstedii <-
primates %>%
filter(species == "Saimiri oerstedii")
Obtener la capa rasper de altitud utilizando WorldClim.
# Especificación del directorio de trabajo
setwd("C:/Users/SARA/Desktop/UCR/Procesamiento_de_datos_geograficos/Tareas y Proyectos/Tareas/Tarea03")
# Obtención de la capa de altitud
alt <- getData(
"worldclim",
var = "alt",
res = .5,
lon = -84,
lat = 10
)
# Capa de altitud recortada para los límites exactos de Costa Rica
altitud <-
alt %>%
crop(cantones) %>%
mask(cantones)
Crear la paleta de colores para una coloracion adecuada
# Paleta de colores
pal <- colorNumeric(
c("#006400", "#FFFF00", "chocolate1", "#FF0000"),
values(altitud),
na.color = "transparent"
)
Crear el mapa de registros de presencia de los primates
# Mapa de registros de presencia
primates %>%
dplyr::select(stateProvince,
canton,
locality,
eventDate,
family,
species) %>%
leaflet() %>%
addProviderTiles(providers$OpenStreetMap.Mapnik, group = "OpenStreetMap") %>%
addProviderTiles(providers$Stamen.TonerLite, group = "Stamen Toner Lite") %>%
addProviderTiles(providers$Esri.WorldImagery, group = "Imágenes de ESRI") %>%
addRasterImage(
altitud,
colors = pal,
opacity = 0.7,
group = "Capa raster de altitud"
) %>%
addPolygons(
data = cantones,
color = "tan4",
fillColor = "transparent",
stroke = TRUE,
weight = 1.0,
) %>%
addCircleMarkers(
data = Ateles_geoffroyi,
stroke = F,
radius = 4,
fillColor = 'gray',
fillOpacity = 0.8,
popup = paste(
Ateles_geoffroyi$stateProvince,
Ateles_geoffroyi$canton,
Ateles_geoffroyi$locality,
Ateles_geoffroyi$eventDate,
Ateles_geoffroyi$family,
Ateles_geoffroyi$species,
sep = '<br/>'
),
group = "Ateles geoffroyi"
) %>%
addCircleMarkers(
data = Cebus_capucinus,
stroke = F,
radius = 4,
fillColor = 'blue',
fillOpacity = 0.8,
popup = paste(
Cebus_capucinus$stateProvince,
Cebus_capucinus$canton,
Cebus_capucinus$locality,
Cebus_capucinus$eventDate,
Cebus_capucinus$family,
Cebus_capucinus$species,
sep = '<br/>'
),
group = "Cebus capucinus"
) %>%
addCircleMarkers(
data = Alouatta_palliata,
stroke = F,
radius = 4,
fillColor = "orange",
fillOpacity = 0.8,
popup = paste(
Alouatta_palliata$stateProvince,
Alouatta_palliata$canton,
Alouatta_palliata$locality,
Alouatta_palliata$eventDate,
Alouatta_palliata$family,
Alouatta_palliata$species,
sep = '<br/>'
),
group = "Alouatta palliata"
) %>%
addCircleMarkers(
data = Saimiri_oerstedii,
stroke = F,
radius = 4,
fillColor = 'red',
fillOpacity = 0.8,
popup = paste(
Saimiri_oerstedii$stateProvince,
Saimiri_oerstedii$canton,
Saimiri_oerstedii$locality,
Saimiri_oerstedii$eventDate,
Saimiri_oerstedii$family,
Saimiri_oerstedii$species,
sep = '<br/>'
),
group = "Saimiri oerstedii"
) %>%
addLayersControl(
baseGroups = c("OpenStreetMap", "Stamen Toner Lite", "Imágenes de ESRI"),
overlayGroups = c(
"Ateles geoffroyi",
"Cebus capucinus",
"Alouatta palliata",
"Saimiri oerstedii",
"Capa raster de altitud"
)
) %>%
addMiniMap(
tiles = providers$Stamen.OpenStreetMap.Mapnik,
position = "bottomleft",
toggleDisplay = TRUE
)